// axios的二次封装
import axios from 'axios'
import { showNotify } from 'vant';
import { getToken,removeToken } from '@/utils/token';
import router from '@/router'

let request=axios.create({
    baseURL:'http://124.220.178.79:8199',
    timeout:5000
});


// 封装请求拦截
request.interceptors.request.use(config=>{
    // 添加请求头鉴权信息
    config.headers.Authorization=`Bearer ${getToken()}`
    return config
},err=>{
    return Promise.reject(err)
})

// 封装响应拦截
request.interceptors.response.use(res=>{
    let result=res.data;
    // code 是和后端约定的状态码
    if(result.code===1){
        
        return result.data
    }else{
        if(result.code===0){
            showNotify({ type: 'danger', message: result.message||'密码错误' });
            if(result.message==='请登录'){
                // 走到这里需要清除token 返回登录页
                removeToken();
                router.replace('/login')
            }
        }
        if(result.code===3){
            showNotify({ type: 'danger', message: '登录信息有误,请确认后再登录'});
        }   
        return Promise.reject('操作失败')
    }
    
},err=>{
    return Promise.reject(err)
})


export default request